
#include "list_helper.h"
#include <mutex>
#include <unordered_map>

static std::unordered_map<void*, int> listmap;
static std::mutex                     mtx;

AR8030_API void listmap_add(void* ptr, int num)
{
    std::lock_guard<std::mutex> lk(mtx);

    listmap[ptr] = num;
}

AR8030_API void listmap_del(void* ptr)
{
    std::lock_guard<std::mutex> lk(mtx);

    auto itr = listmap.find(ptr);
    if (itr != listmap.end()) {
        listmap.erase(itr);
    }
}

AR8030_API int listmap_get(void* ptr)
{
    std::lock_guard<std::mutex> lk(mtx);

    auto itr = listmap.find(ptr);
    if (itr != listmap.end()) {
        return itr->second;
    }
    return 0;
}
